package ru.zombator.taskman.core.domain;

import java.io.Serializable;

/**
 * Интерфейс "отметка рабочего времени"
 * 
 * @author nvamelichev
 * 
 */
public interface IWorkTime extends IIdentifiable, Serializable {
	/**
	 * @return исполнитель
	 */
	IWorker getWho();

	/**
	 * Задать исполнителя
	 * 
	 * @param who
	 *            - исполнитель
	 */
	void setWho(IWorker who);

	/**
	 * @return дата
	 */
	Datestamp getDate();

	/**
	 * Задает новую дату
	 * 
	 * @param newDate
	 *            - новая дата
	 */
	void setDate(Datestamp newDate);

	/**
	 * @return количество отработанных часов
	 */
	int getHours();

	/**
	 * Задает количество отработанных часов.
	 * 
	 * @param hours
	 *            - количество часов
	 * @throws IllegalArgumentException
	 *             часов меньше 0 или больше 24
	 */
	void setHours(byte hours) throws IllegalArgumentException;
}
